Temporal Data Model for Program Debugging
نویسندگان
چکیده
We present a novel approach to program debugging and dynamic program analysis based on a temporal data model and query language. The data model exposes a point-based view of executions, while the underlying data is represented using intervals, for efficiency reasons. The point-based query language supports selection, projection, joins, grouping/aggregation, and recursion on both data and temporal attributes. We present examples of debug and dynamic analysis queries to illustrate our approach. The main technical contribution of the paper lies in showing how to evaluate pointbased recursive queries against the interval-based data. In order to evaluate a non-recursive point-based query, it is first compiled into an interval-based query. The compilation relies on a normalization operation to preserve point-based semantics when evaluating compiled queries against interval-based data. It turns out that a straightforward extension of the compilation to handle recursion yields non-linear recursive queries with non-stratified negation. We circumvent this problem by employing a simpler compilation and introducing a normalizing immediate-consequence operator for bottom-up evaluation. We also present correctness and termination theorems for our temporal recursive query evaluation strategy. This work forms part of a larger research project in developing JIVE, a state-of-the-art dynamic analysis and visualization system for Java.
منابع مشابه
MARKOVIAN SOFTWARE RELIABILITY MODEL FOR TWO TYPES OF FAILURES WITH IMPERFECT DEBUGGING RATE AND GENERATION OF ERRORS
N
متن کاملTemporal Model for Debugging and Visualizations
This paper discusses the benefits of a temporal data model for debugging and run-time visualization of object-oriented software. Current debugging models generally only provide access to the current program state and support manual exploration of the state to uncover the cause of program errors. However, often the cause of an error lies in distant previous states, and a more comprehensive view ...
متن کاملA Formal Approach to Modeling Expected Behavior in Parallel Program Visualizations
Visualizations of program execution are useful for debugging the complex behavior of parallel programs. However, the eeectiveness of the visualizations is limited by how well their representations match the programmer's conceptual model of the expected program behavior. In this paper, we show that the LOTOS speciication of a parallel program may be used to model expected behavior in the visuali...
متن کاملOn-the-Fly Model Checking of Program Runs for Automated Debugging
In this paper, an on-the-fly algorithm is developed for model checking of temporal logic safety properties on partially ordered occurrence net structures. This algorithm is used for the automated debugging of parallel programs. During the monitoring of a program run, a state action net is constructed from the program trace. Temporal specifications are evaluated on-the-fly with respect to this n...
متن کامل“Lightweight” Semantics Models for Program Testing and Debugging Automation
We suggest an approach to the development of software testing and debugging automation tools based on precise program behavior models. The program behavior model is defined as a set of events (event trace) with two basic binary relations over events -precedence and inclusion, and represents the temporal relationship between actions. A language for the computations over event traces is developed...
متن کامل